A non-volatile semiconductor memory may be employed as mass storage for a computer system (e.g., desktop, laptop, portable, etc.) or a consumer device (e.g., music player, cell phone, camera, etc.) or other suitable application. The non-volatile semiconductor memory may comprise one or more memory devices (such as a flash memory) and control circuitry for accessing each memory device. Each memory device is coupled to an I/O bus, as well as a number of interface control lines. When issuing a program command or an erase command to a memory device, the control circuitry transfers the address and command data (and write data for a program operation) over the I/O bus. When issuing a read command, the control circuitry transfers the address and command data over the I/O bus and then receives the read data over the I/O bus.
FIG. 1 shows a prior art non-volatile semiconductor memory 2 communicating with a host 4 according to a suitable communication protocol. A memory controller 6 comprises a buffer 8 for buffering data for write/read commands, and a microprocessor 10 executing control programs for various algorithms, such as a logical block address (LBA) to physical block address (PBA) mapping, wear leveling, error correction code, etc. The memory controller 6 further comprises interface circuitry 12 for interfacing with one or more memory devices 14, such as a suitable flash memory device. The interface circuitry 12 generates suitable control signals 16 and receives status information 18 from the memory device 14 in connection with executing write/read commands initiated by the microprocessor 10. The interface circuitry 12 also transmits and receives data over an I/O bus 20, including read/write data stored in the buffer 8 or command data generated by the microprocessor 10 and transmitted to a controller 22 integrated with the memory device 14.
The memory device 14 comprises an array of memory cells 24 that are accessed in memory segments referred to as pages. During a write operation, write data received over the I/O bus 20 from the buffer 8 is first stored in a data register 26. The controller 22 then transfers the write data from the data register 26 to a target page in the memory array 24. During a read operation, a page in the memory array 24 is read into the data register 26 and then transferred over the I/O bus 20 where it is stored in the buffer 8.
The pages in the memory array 24 may be implemented using single-level cell (SLC) technology wherein each cell stores a single bit, or multi-level cell (M) technology wherein each cell stores multiple bits. Certain brands of M memory devices allow all or part of the pages in the memory array 24 to be configured into an SLC mode. The benefit of SLC over M is improved performance (faster throughput) as well as improved endurance (more erase/program cycles) at the cost of lower capacity (single bit versus multi-bit per cell) leading to a higher price for the same capacity.